www.gusucode.com > MATLAB+神经网络30个案例分析》程序和数据 > 源程序/案例17 SOM神经网络的数据分类--柴油机故障诊断/chapter17.m
%% SOM神经网络的数据分类--柴油机故障诊断 % % % <html> % <table border="0" width="600px" id="table1"> <tr> <td><b><font size="2">该案例作者申明:</font></b></td> </tr> <tr> <td><span class="comment"><font size="2">1:本人长期驻扎在此<a target="_blank" href="http://www.ilovematlab.cn/forum-158-1.html"><font color="#0000FF">板块</font></a>里,对<a target="_blank" href="http://www.ilovematlab.cn/thread-48362-1-1.html"><font color="#0000FF">该案例</font></a>提问,做到有问必答。</font></span></td></tr><tr> <td><span class="comment"><font size="2">2:此案例有配套的教学视频,配套的完整可运行Matlab程序。</font></span></td> </tr> <tr> <td><span class="comment"><font size="2"> 3:以下内容为该案例的部分内容(约占该案例完整内容的1/10)。</font></span></td> </tr> <tr> <td><span class="comment"><font size="2"> 4:此案例为原创案例,转载请注明出处(<a target="_blank" href="http://www.ilovematlab.cn/">Matlab中文论坛</a>,<a target="_blank" href="http://www.ilovematlab.cn/forum-158-1.html">《Matlab神经网络30个案例分析》</a>)。</font></span></td> </tr> <tr> <td><span class="comment"><font size="2"> 5:若此案例碰巧与您的研究有关联,我们欢迎您提意见,要求等,我们考虑后可以加在案例里。</font></span></td> </tr> <tr> <td><span class="comment"><font size="2"> 6:您看到的以下内容为初稿,书籍的实际内容可能有少许出入,以书籍实际发行内容为准。</font></span></td> </tr><tr> <td><span class="comment"><font size="2"> 7:此书其他常见问题、预定方式等,<a target="_blank" href="http://www.ilovematlab.cn/thread-47939-1-1.html">请点击这里</a>。</font></span></td> </tr></table> % </html> % %% 清空环境变量 clc clear %% 录入输入数据 % 载入数据 load p; %转置后符合神经网络的输入格式 P=P'; %% 网络建立和训练 % newsom建立SOM网络。minmax(P)取输入的最大最小值。竞争层为6*6=36个神经元 net=newsom(minmax(P),[6 6]); plotsom(net.layers{1}.positions) % 5次训练的步数 a=[10 30 50 100 200 500 1000]; % 随机初始化一个1*10向量。 yc=rands(7,8); %% 进行训练 % 训练次数为10次 net.trainparam.epochs=a(1); % 训练网络和查看分类 net=train(net,P); y=sim(net,P); yc(1,:)=vec2ind(y); plotsom(net.IW{1,1},net.layers{1}.distances) % 训练次数为30次 net.trainparam.epochs=a(2); % 训练网络和查看分类 net=train(net,P); y=sim(net,P); yc(2,:)=vec2ind(y); plotsom(net.IW{1,1},net.layers{1}.distances) % 训练次数为50次 net.trainparam.epochs=a(3); % 训练网络和查看分类 net=train(net,P); y=sim(net,P); yc(3,:)=vec2ind(y); plotsom(net.IW{1,1},net.layers{1}.distances) % 训练次数为100次 net.trainparam.epochs=a(4); % 训练网络和查看分类 net=train(net,P); y=sim(net,P); yc(4,:)=vec2ind(y); plotsom(net.IW{1,1},net.layers{1}.distances) % 训练次数为200次 net.trainparam.epochs=a(5); % 训练网络和查看分类 net=train(net,P); y=sim(net,P); yc(5,:)=vec2ind(y); plotsom(net.IW{1,1},net.layers{1}.distances) % 训练次数为500次 net.trainparam.epochs=a(6); % 训练网络和查看分类 net=train(net,P); y=sim(net,P); yc(6,:)=vec2ind(y); plotsom(net.IW{1,1},net.layers{1}.distances) % 训练次数为1000次 net.trainparam.epochs=a(7); % 训练网络和查看分类 net=train(net,P); y=sim(net,P); yc(7,:)=vec2ind(y); plotsom(net.IW{1,1},net.layers{1}.distances) yc %% 网络作分类的预测 % 测试样本输入 t=[0.9512 1.0000 0.9458 -0.4215 0.4218 0.9511 0.9645 0.8941]'; % sim( )来做网络仿真 r=sim(net,t); % 变换函数 将单值向量转变成下标向量。 rr=vec2ind(r) %% 网络神经元分布情况 % 查看网络拓扑学结构 plotsomtop(net) % 查看临近神经元直接的距离情况 plotsomnd(net) % 查看每个神经元的分类情况 plotsomhits(net,P) web browser http://www.ilovematlab.cn/viewthread.php?tid=65106 %% % % <html> % <table align="center" > <tr> <td align="center"><font size="2">版权所有:</font><a % href="http://www.ilovematlab.cn/">Matlab中文论坛</a> <script % src="http://s3.cnzz.com/stat.php?id=971931&web_id=971931&show=pic" language="JavaScript" ></script> </td> </tr></table> % </html> %